-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
drivers/ft5x06: fix vendor ID for FT6xx6 and FTxxxx register addresses #19860
Conversation
The vendor ID of FT6xx6 touch panel driver ICs is `0x11` instead of `0xcd`.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trusting your testing on this one.
Unfortunately, it is more complicated than it looked. There are indeed STM32 boards with FT6236 which uses I'm working on a solution that will work with both vendor IDs. |
@benpicco Now it checks for both Furthermore, when trying to use gesture which don't work at all for FTxxxx, I found a bug in register addresses that is also fixed now with this PR. |
2d26165
to
766f0f4
Compare
@benpicco Does the ACK still apply? |
Sure! |
766f0f4
to
a9f3ce1
Compare
I sqashed it. |
bors merge |
👎 Rejected by PR status |
bors merge |
Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
Thanks |
19866: drivers/ft5x06: use a pointer to config parameters instead of copying them r=benpicco a=gschorcht ### Contribution description There is no need to copy the configuration parameter set to the device descriptor. A const pointer to the configuration parameter set in ROM is sufficient. It saves 16 byte of RAM. Includes PR #19860 for the moment to be compilable. ### Testing procedure Use ``` CFLAGS='-DNDEBUG' BOARD=stm32f723e-disco make -j8 -C tests/drivers/touch_dev/ ``` with and w/o this PR and compare the sizes. Without the PR the sizes are: ``` text data bss dec 14652 136 2704 17492 ``` With the PR the sizes are: ``` text data bss dec 14676 136 2688 17500 ``` ### Issues/PRs references ~Depends on PR #19860~ Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
19867: drivers/ft5x06: introduce conversion for X and Y coordinates r=aabadie a=gschorcht ### Contribution description This PR provides the parameter option to define how the X and Y coordinates have to be converted. To get coordinates from the touch panel that correspond to the display coordinates, it is often necessary to convert the coordinates from the touch pannel by swapping and mirroring them. For the sake of simplicity, possible rotations are additionally defined. The PR includes PRs #19860 and #19866 to be compilable. ### Testing procedure `tests/pkg/lvgl_touch` should still work for the `stm32f746g-disco` board. ``` BOARD=stm32f746g-disco make -C tests/pkg/lvgl_touch ``` ### Issues/PRs references ~Depends on PR #19860~ Depends on PR #19866 Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Contribution description
This PR provides a fix of the vendor ID for FT6xx6 touch panel driver ICs and a fix of register addresses for FTxxxx.
According to the Application Note for FT6x06 CTPM, the vendor ID of FT6x06 touch panel driver ICs is
0x11
instead of0xcd
. Although there are no information found in the Web about the FT6x36, the FT6336U touch panel of a ESP32-S3 WT32 SC01 Plus is also working with0x11
as vendor ID so that it seems that FT6x36 is also using0x11
as vendor ID.Figured out with a
stm32f723e-disco
board (revision D03). Without this PR,tests/drivers/ft5x06
gives:With this PR it works as expected.
Some background information found in the Web:
stm32f723e-disco
board either uses FT6x36 (prior revision D) or FT3x67 (revision D). However, the FT5x06 driver type for the card is defined as FT6x06, which does not seem correct:RIOT/boards/stm32f723e-disco/include/board.h
Line 59 in bb9011c
0xcd
. However, the FT6336U on ESP32-S3 WT32 SC01 Plus works with vendor ID0x11
.0x11
as vendor id.stm32l496g-disco
board uses a FT6236 which has vendor ID0xcd
.So the information available on the web is confusing. Maybe, a better solution would be to accept
0x11
as well as0xcd
as vendor ID for FT6xxx touch panels. Unfortunately, there are no documents available on the registers directly from FocalTech 😟 so it seems to be more speculation than knowledge.Testing procedure
Issues/PRs references